(function($, doc) {
    $.init();

    window.addEventListener('show', function(e) {
		activateTab(e.detail.index || 0);
    }, false);

    var settings = app.getSettings();
    var state = app.getState();

    var subpage_style = {
        top: '0px',
        bottom: '51px',
        scrollIndicator: 'none'
    }
    var subpages = [
        'page/main.index.html',
        'page/main.tel.html',
        'page/main.email.html',
        'page/main.my.html'
    ];
    var activeTab = subpages[0]; // 记录当前激活的item
    $.plusReady(function() {
        if (!$.os.plus) return;

        var curr = plus.webview.currentWebview();
        // 创建子页面，首个显示，其他隐藏
        $.each(subpages, function(index, node) {
            var sub = plus.webview.create(node, node, subpage_style);
            if (index > 0) {
                sub.hide();
            }
            curr.append(sub);
        });

        // 底部导航点击
        $('nav').on('tap', 'a', function() {
            var targetTab = this.dataset.href;
            if (targetTab == activeTab) {
                return;
            }
            // 若为ios平台或非首次显示，则直接显示
            if ($.os.ios) {
                plus.webview.show(targetTab);
                plus.webview.hide(activeTab);
                activeTab = targetTab;
            } else {
                plus.webview.show(targetTab, 'fade-in', 200);
                setTimeout(function() {
                    plus.webview.hide(activeTab);
                    activeTab = targetTab;
                }, 200);
            }
        });

        // 双击退出
        app.doubletapExit();
    });

	// 模拟点击tab
    function activateTab(index) {
        var item = doc.querySelectorAll('nav>a')[index];
        // 模拟点击
        $.trigger(item, 'tap');
        // 切换选项卡高亮
        var curr = doc.querySelector('nav>.mui-active');
        if (item !== curr) {
            curr.classList.remove('mui-active');
            item.classList.add('mui-active');
        }
    }

    /**
     * 通过版本号判断是否需要更新
     * @param  {String} local  本地版本号
     * @param  {String} remote 远程版本号
     * @return {Boolean}       是否更新
     */
    const vchange = (local, remote) => {
        const [lv, rv, t, f] = [local.split('.').map(v => +v || 0), remote.split('.').map(v => +v || 0), true, false];
        return rv[0] > lv[0] ? t : (rv[0] < lv[0] ? f : (rv[1] > lv[1] ? t : (rv[1] < lv[1] ? f : rv[2] > lv[2])));
    }
}(mui, document));